package com.qd.system.treecl;

import java.util.List;
import java.util.Set;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: sjk
 * Date: 2020-10-26
 * Time: 9:59
 *
 * @author sjk
 */
public interface TreeCl {

    /**
     * 添加
     *
     * @param dto 参数
     */
    void add(TreeClDTO dto);

    /**
     * 批量添加
     *
     * @param list 树形结构数据
     */
    void batchAdd(List<TreeClDTO> list);

    /**
     * 修改
     *
     * @param dto 参数
     */
    void update(TreeClDTO dto);

    /**
     * 批量修改
     *
     * @param list 树形结构数据
     */
    void batchUpdate(List<TreeClDTO> list);

    /**
     * 移动
     *
     * @param dto 参数
     */
    void move(TreeClDTO dto);

    /**
     * 批量移动
     *
     * @param list 树形结构数据
     */
    void batchMove(List<TreeClDTO> list);

    /**
     * 删除
     *
     * @param dto 参数
     */
    void delete(TreeClDTO dto);

    /**
     * 批量删除
     *
     * @param list 树形结构数据
     */
    void batchDelete(List<TreeClDTO> list);

    /**
     * 全量同步
     *
     * @param dto 参数
     */
    void syncAll(TreeClDTO dto);

    /**
     * 根据表中的PARENT_ID查询他自己和他的下一级组织
     *
     * @param dto PARENT_ID
     * @return 列表
     */
    Set<TreeClModel> getTreeClByPid(TreeClDTO dto);

    /**
     * 根据表中的ID查询他自己和他的上一级组织
     *
     * @param dto ID
     * @return 列表
     */
    Set<TreeClModel> getTreeClById(TreeClDTO dto);
}
